<?php

/*
 * El instanciador abstracto resuelve con un template method la carga de la clase en caso de 
 * que no este cargada en el sistema actualmente
 * */

abstract class Exts_Dependency_Instantiator_Abstract {
	
	protected function loadClass ($className){
		if (!class_exists($className)) {
            require_once 'Zend/Loader.php';
            Zend_Loader::loadClass($className);
	    }
	}
	protected abstract function _makeAnInstance($className);	
	public function instance ($className){
		$this->loadClass($className);
		return $this->_makeAnInstance($className);
	}
	
}